﻿using Administracion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.SqlClient;
using System.Data;
using Model;





namespace Administracion.Controllers
{
    public class LocalidadController : Controller
    {


        private DataContext dataContext = new DataContext();

        public ActionResult Index()
        {
            return View();
        }


        public ActionResult IndexLocalidad()
        {
            var listaDeLocalidades = dataContext.localidades;

            return View(model: listaDeLocalidades);
        }




        [HttpGet]
      //  [Authorize]
        public ActionResult Agregar()
        {

            var localidad = new Localidad();
            return View(model: localidad);
        }


        [HttpPost]
        public ActionResult Agregar(Localidad localidad)
        {

            if (ModelState.IsValid && localidad.codigo > 0)
            {

                if (dataContext.agregarLocalidad(localidad))
                {
                    return RedirectToAction("IndexLocalidad");
                }
                else
                {

                    ViewBag.Error = true;
                }

            }


            return this.View(localidad);

        }

        [HttpGet]
        public ActionResult Editar(int id)
        {
            Localidad localidad = dataContext.localidades.Find(id);
            return View(model: localidad);
        }

        [HttpPost]
        public ActionResult Editar(Localidad localidad)
        {
            if (ModelState.IsValid && localidad.codigo > 0)
            {

                Localidad localidadBase = dataContext.localidades.Find(localidad.id);
                localidadBase.nombre = localidad.nombre;
                localidadBase.codigo = localidad.codigo;

                dataContext.SaveChanges();
                return RedirectToAction("IndexLocalidad");
            }


            return this.View(localidad);
        }


        [HttpGet]
        public ActionResult Eliminar(int id)
        {
            Localidad localidad = dataContext.localidades.Find(id);
            return View(model: localidad);
        }

        [HttpPost]
        public ActionResult Eliminar(Localidad localidad)
        {
            Localidad localidadBase = dataContext.localidades.Find(localidad.id);
            dataContext.localidades.Remove(localidadBase);
            dataContext.SaveChanges();
            return RedirectToAction("IndexLocalidad");
        }





        public ActionResult consultarLocalidad(int id)
        {

            Localidad localidad = dataContext.buscarLocalidad(id);
            return Json(localidad, JsonRequestBehavior.AllowGet);



        }








    }
}
